package ar.edu.utn.frba.dds.tp.segundaEntrega.code;

import java.math.BigDecimal;

public class AsientoDeVuelo {
	
	private Vuelo vuelo;
	private int numeroDeAsiento;
	private BigDecimal precio;
	private String clase; //turista, ejecutiva o primera
	private String ubicacion; //pasillo, centro, ventana
	private String estado; //reservado, disponible
	
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	//+++ Accesors +++++++++++++++++++++++++++++++++++++++++++++++
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	
	
	public String getCodigoDeVuelo() {
		return getVuelo().getNroDeVuelo();
	}
	
	public int getNumero() {
		return numeroDeAsiento;
	}
	
	public void setNumero(int numero) {
		this.numeroDeAsiento = numero;
	}
	
	public BigDecimal getPrecio() {
		return precio; 
	}
	
	public void setPrecio(BigDecimal precio) {
		this.precio = precio;
	}
	
	public String getClase() {
		return clase;
	}
	
	public void setClase(String clase) {
		this.clase = clase;
	}
	
	public String getUbicacion() {
		return ubicacion;
	}
	
	public void setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
	}
	
	public String getEstado() {
		return estado;
	}
	
	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	public Vuelo getVuelo() {
		return vuelo;
	}
	
	public void setVuelo(Vuelo vuelo) {
		this.vuelo = vuelo;
	}
	
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	//+++ Code +++++++++++++++++++++++++++++++++++++++++++++++++++
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


	public boolean soySuperOferta(BigDecimal impuesto){    
		// impuesto debe ser de la forma 0.15 para 15%, etc
		
		return (this.esClaseEjecutiva() && this.precioOferta(impuesto, new BigDecimal(4000))) || 
				(this.esPrimeraClase() && this.precioOferta(impuesto, new BigDecimal(8000)));
			
	
	}
	
	private boolean precioOferta(BigDecimal impuesto, BigDecimal oferta){
		return precio.add(precio.multiply(impuesto)).compareTo(oferta) < 0;
	}
	
	private boolean esClaseEjecutiva(){
		return this.clase.equalsIgnoreCase("ejecutiva");
		
	}
	
	private boolean esPrimeraClase(){
		return this.clase.equalsIgnoreCase("primera");
		
	}

	
}
